﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using Dominio;

namespace Persistencia
{
    public class DetalleComanda_Data
    {
        SqlConnection _cn = null;
        SqlCommand _cmd = null;
        SqlDataReader _reader = null;

        public void Data_DetalleComanda_Insert(DetalleComanda _addDetalle)
        {
            using (_cn = new SqlConnection(Helpers.ConexionUtil.ObtenerCadena()))
            {
                using (_cmd = new SqlCommand("USP_DETALLE_COMANDA_INSERT", _cn))
                {
                    List<SubCategoria> _ListSubCategorias = new List<SubCategoria>();
                    _cn.Open();
                    _cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    _cmd.Parameters.Add("@coMaestroComanda", SqlDbType.Int).Value = _addDetalle.maestroComanda.coMaestroComanda;
                    _cmd.Parameters.Add("@coProducto", SqlDbType.Int).Value = _addDetalle.Producto.coProducto;
                    _cmd.Parameters.Add("@cantidadProducto", SqlDbType.Int).Value = _addDetalle.cantidadProducto;
                    _cmd.Parameters.Add("@precio", SqlDbType.Decimal).Value = _addDetalle.precio;
                    _cmd.Parameters.Add("@subTotal", SqlDbType.Int).Value = _addDetalle.subTotal;
                    _cmd.Parameters.Add("@observacion", SqlDbType.VarChar,400).Value = _addDetalle.observacion;
                    _cmd.ExecuteNonQuery();
                }
            }
        }

        public List<DetalleComanda> Data_DetalleComanda_List(int _codigoMaestro)
        {
            using (_cn = new SqlConnection(Helpers.ConexionUtil.ObtenerCadena()))
            {
                using (_cmd = new SqlCommand("USP_DETALLE_COMANDA_LIST", _cn))
                {
                    List<DetalleComanda> _DetalleLista = new List<DetalleComanda>();

                    string _nombrePersonal = string.Empty;
                    _cn.Open();
                    _cmd.CommandType = System.Data.CommandType.StoredProcedure;
                    _cmd.Parameters.Add("@coMaestroComanda", SqlDbType.Int).Value = _codigoMaestro;
                    _reader = _cmd.ExecuteReader();

                    while (_reader.Read())
                    {
                        DetalleComanda _detalle = new DetalleComanda();
                        Producto _producto = new Producto();

                        _producto.coProducto = Convert.ToInt32(_reader["coProducto"].ToString());
                        _producto.noProducto = _reader["noProducto"].ToString();
                        _detalle.Producto = _producto;
                        _detalle.precio = Convert.ToDecimal(_reader["Precio"].ToString());
                        _detalle.cantidadProducto = Convert.ToInt32(_reader["cantidadProducto"].ToString());
                        _detalle.subTotal = Convert.ToDecimal(_reader["subTotal"].ToString());

                        _DetalleLista.Add(_detalle);
                    }
                    return _DetalleLista;
                }
            }
        }
    }
}
